package com.jingdianjichi.subject.domain.convert;

import com.jingdianjichi.subject.domain.entity.SubjectCategoryBO;
import com.jingdianjichi.subject.infra.basic.entity.SubjectCategory;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper         //注意是mapstruct的mapper,我们用于对象的转换
public interface SubjectCategoryConverter {

    SubjectCategoryConverter INSTANCE= Mappers.getMapper(SubjectCategoryConverter.class);
    /*
        这里使用了 MapStruct 提供的 Mappers.getMapper 方法来获得 SubjectCategoryConverter 接口的实例。
            由于 MapStruct 使用编译时代码生成的方式来实现转换，所以这个 INSTANCE 是一个已生成的实现类的对象，可以直接使用。
     */

    //把BO转为数据库的类型,这时他就会自动帮我们转换了
    SubjectCategory convertBoToCategory(SubjectCategoryBO subjectCategoryBO);

    //转换
    List<SubjectCategoryBO> convertBoToCategory(List<SubjectCategory> categoryList);

    List<SubjectCategoryBO> convertEntityToBo(List<SubjectCategory> subjectCategories);

}
